#pragma once

class Point
{
public:
	double X, Y, Z;
	Point(double x, double y, double z);
	Point(const Point&);
	void Set(double x, double y, double z);
	void Set(const Point& point);
	void TransMultiplication(const Point&);
	void operator+=(const Point&);
	void operator-=(const Point&);
	void operator*=(double);
	Point operator+ (const Point&) const;
	Point operator- (const Point&) const;
	Point operator- () const;
	Point operator* (double) const;
	Point operator/ (double) const;
	void Normalize();
	double ScalarProduct(const Point&) const;
	double Length();
	double SquaredLength();
	static Point Infinity();
};
